#include <iostream>

using namespace std;
const int N=1e5+10;

int dp[N];

int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		int v,w,c;
		scanf("%d%d%d",&w,&v,&c);
		for(int j=1;j<=c;c-=j,j*=2)
		{
			for(int k=m;k>=0;k--)
			{
				if(k>=j*v)
				{
					dp[k]=max(dp[k],dp[k-j*v]+j*w);
				}
			}
		}
		if(c)
		{
			for(int k=m;k>=0;k--)
			{
				if(k>=c*v)
				{
					dp[k]=max(dp[k],dp[k-c*v]+c*w);
				}
			}
		}
	}
	cout<<dp[m]<<endl;
	return 0;
}
